package com.example.commonback.common.dbenum;

import lombok.Getter;

/**
 * 定义通用后端需要增删改查的表以及字段
 *
 * @author Lv
 * @date 2022/8/10
 */
@Getter
public enum CommonTableEnum {
    /**
     * 岗位表
     */
    POST(true, true, true, true, true),

    /**
     * 部门表
     */
    DEPARMENT(true, true, true, true, true),

    /**
     * 用户表 密码字段不允许被查询
     */
    USER("password", true, true, true, true, true),

    /**
     * 用户档案表
     */
    USER_RECORD(true, true, true, true, true),

    /**
     * 员工表 家庭住址以及薪资不允许被查询
     */
    EMP("salary,address", true, true, true, true, true),

    ;

    /**
     * 允许所有字段对外开放
     *
     * @param list   查询权限
     * @param get    详情权限
     * @param add    添加权限
     * @param edit   编辑权限
     * @param delete 删除权限
     */
    CommonTableEnum(boolean list, boolean get, boolean add, boolean edit, boolean delete) {
        this.list = list;
        this.get = get;
        this.add = add;
        this.edit = edit;
        this.delete = delete;
    }

    /**
     * 全参构造 可保证开闭原则
     *
     * @param filed  不允许查询的Sql字段 (必须与表中字段命名方式相同  多个字段用逗号隔开 "a,b,c")
     * @param list   查询权限
     * @param get    详情权限
     * @param add    添加权限
     * @param edit   编辑权限
     * @param delete 删除权限
     */
    CommonTableEnum(String filed, boolean list, boolean get, boolean add, boolean edit, boolean delete) {
        this.filed = filed;
        this.list = list;
        this.get = get;
        this.add = add;
        this.edit = edit;
        this.delete = delete;
    }

    /**
     * 不允许被查询的Sql字段
     */
    public String filed;

    /**
     * 是否允许查询
     */
    public boolean list;

    /**
     * 是否允许获取详情
     */
    public boolean get;

    /**
     * 是否允许添加
     */
    public boolean add;

    /**
     * 是否允许编辑
     */
    public boolean edit;

    /**
     * 是否允许删除
     */
    public boolean delete;

}


